package lab2test;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

import lab2.NextDate;

public class TestNextDate {
	
	private NextDate n;
	
	@Before
	public void setUp() {
		n = new NextDate(0, 0, 0);		
	}
	
//	@Test
//	public void StatementTC1() {assertEquals("1/21/1946", n.run(1,20,1946));}
//	@Test
//	public void StatementTC2() {assertEquals("4/1/2000", n.run(3,31,2000));}
//	@Test
//	public void StatementTC3() {assertEquals("4/14/1999", n.run(4,13,1999));}
//	@Test
//	public void StatementTC4() {assertEquals("7/1/2012", n.run(6,30,2012));}
//	@Test
//	public void StatementTC5() {assertEquals("Invalid Input Date", n.run(9,31,1978));}
//	@Test
//	public void StatementTC6() {assertEquals("12/16/2012", n.run(12,15,2012));}
//	@Test
//	public void StatementTC7() {assertEquals("1/1/2013", n.run(12,31,2012));}
//	@Test
//	public void StatementTC8() {assertEquals("Invalid Next Year", n.run(12,31,2021));}
//	@Test
//	public void StatementTC9() {assertEquals("2/28/2021", n.run(2,27,2021));}
//	@Test
//	public void StatementTC10() {assertEquals("2/29/2000", n.run(2,28,2000));}
//	@Test
//	public void StatementTC11() {assertEquals("3/1/2003", n.run(2,28,2003));}
//	@Test
//	public void StatementTC12() {assertEquals("Invalid Input Date", n.run(2,29,2005));}
//	@Test
//	public void StatementTC13() {assertEquals("3/1/2012", n.run(2,29,2012));}
//	@Test
//	public void StatementTC14() {assertEquals("Invalid Input Date", n.run(2,30,2004));}
//	@Test
//	public void BranchTC15() {assertEquals("Invalid Input Date", n.run(1,1,1800));}
//	@Test
//	public void BranchTC16() {assertEquals("3/1/1900", n.run(2,28,1900));}
//	@Test
//	public void ConditionTC17() {assertEquals("Invalid Input Date", n.run(1,1,2022));}
//	@Test
//	public void ConditionTC18() {assertEquals("Invalid Input Date", n.run(0,5,2013));}
//	@Test
//	public void ConditionTC19() {assertEquals("Invalid Input Date", n.run(7,0,2013));}
//	@Test
//	public void ConditionTC20() {assertEquals("Invalid Input Date", n.run(13,6,1900));}
//	@Test
//	public void ConditionTC21() {assertEquals("5/14/2012", n.run(5,13,2012));}
//	@Test
//	public void ConditionTC22() {assertEquals("7/17/2013", n.run(7,16,2013));}
//	@Test
//	public void ConditionTC23() {assertEquals("8/29/1901", n.run(8,28,1901));}
//	@Test
//	public void ConditionTC24() {assertEquals("10/17/1974", n.run(10,16,1974));}
//	@Test
//	public void ConditionTC25() {assertEquals("11/19/1987", n.run(11,18,1987));}
	
//	@Test
//	public void ConditionTC26() {assertEquals("12/33/1987", n.run(12,32,2012));}
//	@Test
//	public void ConditionTC27() {assertEquals("12/33/2021", n.run(12,32,2021));}
	
//	@Test
//	public void ConditionTC28() {assertEquals("02/29/2000", n.run(2,28,2000));}
	
	
	// NEW
	@Test
	public void StatementTC1() {assertEquals("Invalid Input Date", n.run(0,1,1990));}
	@Test
	public void StatementTC2() {assertEquals("1/21/1946", n.run(1,20,1946));}
	@Test
	public void StatementTC3() {assertEquals("4/1/2000", n.run(3,31,2000));}
	@Test
	public void StatementTC4() {assertEquals("4/14/1999", n.run(4,13,1999));}
	@Test
	public void StatementTC5() {assertEquals("7/1/2012", n.run(6,30,2012));}
	@Test
	public void StatementTC6() {assertEquals("Invalid Input Date", n.run(9,31,1978));}
	@Test
	public void StatementTC7() {assertEquals("12/16/2012", n.run(12,15,2012));}
	@Test
	public void StatementTC8() {assertEquals("Invalid Next Year", n.run(12,32,2021));}
	@Test
	public void StatementTC9() {assertEquals("1/1/2001", n.run(12,33,2000));}
	@Test
	public void StatementTC10() {assertEquals("2/28/2021", n.run(2,27,2021));}
	@Test
	public void StatementTC11() {assertEquals("2/29/2000", n.run(2,28,2000));}
	@Test
	public void StatementTC12() {assertEquals("3/1/2003", n.run(2,28,2003));}
	@Test
	public void StatementTC13() {assertEquals("3/1/2012", n.run(2,29,2012));}
	@Test
	public void StatementTC14() {assertEquals("Invalid Input Date", n.run(2,29,2005));}
	@Test
	public void StatementTC15() {assertEquals("Invalid Input Date", n.run(2,30,2004));}
	@Test
	public void ConditionDayLessThan1_TC16() {assertEquals("Invalid Input Date", n.run(1,0,1990));}
	@Test
	public void ConditionMonthMoreThan12_TC17() {assertEquals("Invalid Input Date", n.run(13,1,1990));}
	@Test
	public void ConditionYearLessThan1801_TC18() {assertEquals("Invalid Input Date", n.run(1,1,1800));}
	@Test
	public void ConditionYearMoreThan2021_TC19() {assertEquals("Invalid Input Date", n.run(1,1,2022));}
	@Test
	public void ConditionJuly_TC20() {assertEquals("7/1/2013", n.run(7,1,2013));}
	
	
}
